创建工程
打开 Intellij IDEA ,选择 File -> New -> Project …,弹出下面的对话框:
按照图中选择 Maven + 模板选项:maven-archetype-webapp,然后点击下一步。
填写 GroupId 和 ArtifactId,
点击下一步,是创建 Maven 的环境:
点击下一步,这里项目名称自动继承前面设置的 ArtifactId。
然后点击完成,会生成一个工程,目录结构如下。
创建Server
下面我们来创建一个服务器来验证一下Web环境。
首先点击项目右上角的 Add Configuration 或者选择 Run -> Edit Configurations,弹出对话框中点击 + 号:
选择 Tomcat 或者 Jetty 服务器。
先在 Server 选项卡中选择 Application Server 的目录,然后切换到 Deployment 选项卡,点击 + 号,按照图中选择,然后点击OK。
这样 Web 服务器环境就配置好了,然后我们启动服务。点击工具栏上面的运行按钮。
运行成功后自动在浏览器打开 index.jsp 页面。
配置 SpringMVC
我们再加入 Spring MVC 的配置。
在 main 目录下面创建两个目录:java(用来放源代码),resources(用来放资源配置文件)。
通过下面的方式分别设置为 sources root 和 resources root
然后再添加 Spring 的相关依赖,把下面的配置添加到 pom.xml 文件中:
1 | <dependency> |
然后点击 IDE 右下角弹框中的 Import Changes,会自动下载和引入这些依赖。
接下来添加 Spring 的配置文件。
右键点击工程,然后选择 Add FrameWork Support …,选择 Spring MVC:
如果找不到 Spring 选项,表示项目中已经存在Spring项目相关文件,但不一定代表该项目中Spring MVC 的文件是完善的。就打开 Project Structure,选择 Module,把 Spring 删掉。
创建完成后,工程中多出了 applicationContext.xml 和 dispatcher-servlet.xml 配置文件。web.xml 中也增加了一下配置。
到此,Spring MVC 配置完成。
实现 Controller
下面我来实现一下 dispatcher servlet 转发请求。
首先把 web.xml 中的 servlet-mapping 标签中的 *.form
改为 /
,表示拦截所有请求。
1 | <servlet-mapping> |
在 dispatcher-servlet.xml 中添加下面配置:
1 | <context:component-scan base-package="com.hq.web.springdemo"/> |
如果我们想支持返回结果对象自动转为 json 的话,mvc:annotation-driven
必须添加。
然后贴出所有的代码:
1 | @Controller |
- @Controller:定义一个 Controller 控制器
- @RequestMapping:映射 Request 请求与处理器
- @ResponseBody:该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。当返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
1 | public class Data { |
1 | public class Info { |
demo.jsp 代码为:
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
这个时候重新运行,打开页面:http://localhost:8080/SpringDemo_war/api/show,发现并没有把 显示出来,那是因为由于web.xml自动生成的是servlet 2.3版本的配置,而我们项目中需要用servlet 3.0。所以需要改一下web.xml servlet版本:
1 | <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" |
再次运行,查看 name 传递成功。
我们再来测试一下 get 接口,在浏览器运行下面地址:
http://localhost:8080/SpringDemo_war/api/get?nickname=James&gender=0&age=30
数据正常显示。
手动部署
前面讲的在IDE上配置好服务器后,点击运行,IDE会帮助我们部署到服务器上面,现在我们讲解一下如何手动部署。
先来说一下部署的各项配置,其实在建立工程时,IDE已经帮我们把配置什么的都生成了:
pom.xml
1 | <packaging>war</packaging> |
现在来开始编译,首先进入到项目的根目录,运行:
1 | mvn clean package |
这个命令会把以前的编译清除后重新打包,这时可以在 target 目录下找到生成的 war 文件。
把 war 文件复制到 tomcat 的 webapps 目录,然后 ./startup.sh 运行服务器,可以在浏览器里面测试前面的api。